import Vue from 'vue'

// 聚焦指令
Vue.directive('jujiao', {
  // 当指令所在元素插入到真实 dom 中自动触发（触发一次）
  inserted (el) {
    jujiao(el)
  },
  // 当指令所在元素数据更新的时候 自动触发（只要数据变了，每次都会触发）
  update (el) {
    jujiao(el)
  }
})

function jujiao (el) {
  if (['INPUT', 'TEXTAREA'].indexOf(el.tagName) !== -1) {
    el.focus()
  } else {
    let node = el.querySelector('input')
    if (node) {
      node.focus()
      return
    }
    node = el.querySelector('textarea')
    if (node) {
      node.focus()
      return
    }
    throw new Error('请把jujiao指令用在input或textarea上')
  }
}
